Recently, the market for client virtualization solutions in which the execution environment is moved to the server side, unlike client terminals that are directly operated by users on the client side, has expanded. For example, technologies have been disclosed where, in a thin client system having a client terminal that executes the least processing necessary and a server that executes most of the processing, functions of the client terminal is virtualized and PC functions of several dozen PCs are integrated into one server.
The introduction cost of a conventional thin client system is high and therefore, a Desktop-As-A-Service (DaaS) system has been offered that is small-scale and can be inexpensively introduced. The DaaS system is a system that applies client virtualization in a cloud environment and that supplies to a client terminal, a desktop environment of an OS of a virtual machine operating on a server (hereinafter, “virtual desktop environment”).
The client terminal in the DaaS system has to use the virtual desktop environment through a network. In this case, by allocating to the virtual machine, a graphic card that is connected to the server, a graphic process is executable at a high speed even in the virtual desktop environment. Consequently, a user of the client terminal is able to use in a stress-free manner application software (hereinafter, “application”) that accompanies high-speed graphic processing such as computer-aided design (CAD) and regeneration of a moving image.
For example, a technology is disclosed of distributing load using multiple parallel modes in a computer having multiple graphics processing units (GPUs) as a technology concerning apparatus allocation. A technology is disclosed of dynamically and efficiently allocating processes to processor cores according to the execution state of the processes in an example of a multi-core processor system that has multiple cores, as a technology concerning allocation to apparatuses (see, e.g., Published Japanese-Translation of PCT Application, Publication No. 2007-512613 and Japanese Laid-Open Patent Publication No. 2008-90546). A “process” is an execution unit of a program that is executed by a central processing unit (CPU).
For example, a technology is disclosed of selecting a processor of a server such that the requested performance of the server connected to a storage system is not higher than the processing performance of the processor that corresponds to an interface of the storage system, as another technique concerning the allocation. A technology is present of extracting log data operated by an operator and reproducing the log data (see, e.g., Japanese Laid-Open Patent publication Nos. 2005-321854 and 2007-140954).
When a server in the DaaS system allocates a graphic card to a virtual machine by applying any one of the conventional technologies, the processing performance of the graphic card allocated may be too high or too low for application used by a user of the virtual machine. If the processing performance of the graphic card allocated is too high for the application running on the virtual machine that made the request, although no problems arises since the request of the application operating on the corresponding virtual machine has been satisfied, graphic cards allocated by the server are limited and therefore, a problem arises in that, when another virtual machine desires to use a graphic card having high processing performance, such graphic cards may have already been allocated.